package com.css.dzj.zfjg.modules.creditassess.service;

import com.css.dzj.zfjg.modules.creditassess.entity.JgLhjgCreditAssessEntity;
import com.querydsl.core.QueryResults;
import org.springframework.data.domain.Pageable;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
import java.util.Map;

/**
 * 企业信用评估信息详情
 */
public interface CreditassessService {

    /**
     * 添加企业信用评估信息详情
     * @param jgLhjgCreditAssessEntity
     */
    void add(JgLhjgCreditAssessEntity jgLhjgCreditAssessEntity, HttpServletRequest request);

    /**
     * 修改企业信用评估信息详情
     * @param jgLhjgCreditAssessEntity
     */
    void update(JgLhjgCreditAssessEntity jgLhjgCreditAssessEntity);

    /**
     * 通过id查找企业信用评估信息详情
     * @param id
     * @return
     */
    JgLhjgCreditAssessEntity findById(String id);

    /**
     * 分页查询所有企业信用评估信息详情
     * @return
     */
    QueryResults<JgLhjgCreditAssessEntity> queryAll(Pageable pageable);

    /**
     * 多条件分页查询信用线索企业详情
     * @param pageable
     * @param enterpriseName
     * @param enterpriseIdType
     * @param enterpriseType
     * @return
     */
    QueryResults<JgLhjgCreditAssessEntity> listJgLhjgCreditAssessEntity(Pageable pageable, String enterpriseName, String enterpriseIdType, String enterpriseType);

    /**
     * 通过企业证件号码查询企业信用评估信息
     * @param enterpriseCreditCode
     * @return
     */
    JgLhjgCreditAssessEntity queryByIdNumber(String enterpriseCreditCode);

    /**
     * 删除企业信用评估信息
     * @param jgLhjgCreditAssessEntity
     */
    void delete(JgLhjgCreditAssessEntity jgLhjgCreditAssessEntity);

    /**
     * 查询全部
     * @return
     */
    public List<Map> getAll();

    /**
     * 根据任务编码查询企业信息
     */
    JgLhjgCreditAssessEntity findByTaskNo(String taskNo);
    /**
     * 查询企业信用信息List
     * @param
     * @return
     */
    List creditInfo(String enterpriseName,String enterpriseMark1,String enterpriseMark2,String enterpriseType);
    /**
     * 企业评估信息总数
     */
    public Integer gettotalnum();
    /**
     *根据ids查询企业信用评估信息列表
     * @param ids
     * @return
     */
    List<JgLhjgCreditAssessEntity> queryByIds(String ids);
    /**
     * 企业信用评估信息日导出Excel
     * @param response
     * @param creditAssessEntities
     */
    void exportCreditAssessToExcel(HttpServletResponse response, List<JgLhjgCreditAssessEntity> creditAssessEntities);
    /**
     * 根据参数导出数据到Excel
     * @param enterpriseName
     * @param  enterpriseMark
     * @param  enterpriseType
     */
    List<JgLhjgCreditAssessEntity> queryByParams(String enterpriseName, String enterpriseMark, String enterpriseType);

}
